from openpyxl import load_workbook
from VAR.VAR import API_CASE_EXCEL_FILE_PATH, SHEET_NAME
from utils.common import join_project_path


def excel_driver():
    """
    读取 测试用例Excel文件数据 的 "驱动器"
    返回一个列表, 列表中每个元素是元组, 元组中的每个元素是每一行单元格的内容
    注： 若单元格没内容则读取到的值为None
    :return: tulpe_list-->以列表形式返回指定表格中的所有数据
    """
    # 创建存放指定工作区的测试用例的元组列表
    test_case_tulpe_list = []

    try:
        # 测试用例Excel文件的绝对路径
        excel_file_path = join_project_path(API_CASE_EXCEL_FILE_PATH)
        # 加载测试用例Excel文件
        excel = load_workbook(excel_file_path)
        # 指定要读取的工作区
        sheet = excel[SHEET_NAME]

        # 逐行循环读取指定工作区sheet的数据
        for value in sheet.values:
            # 只读取作为测试用例的行数【每行测试用例的第一个单元格都是数字编号】
            if type(value[0]) is int:
                # 将元组装进List
                test_case_tulpe_list.append(value)

    except FileNotFoundError as fe:
        print("fe", fe)
    except Exception as e:
        print("e", e)
    return test_case_tulpe_list


if __name__ == '__main__':
    print(excel_driver())
